#include<bits/stdc++.h>
#define int long long
using namespace std;
const int mod=1000000007;
int n,k,a[1000005],ans1,tot1,ans2,tot2;
inline int qpow(int x,int y)
{
	int num=1;
	while(y)
	{
		if(y&1) num=num*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return num;
}
signed main()
{
	freopen("game.in","r",stdin);
	freopen("game.out","w",stdout);
	ios::sync_with_stdio(false);
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	cout.tie(nullptr);
	cin>>n>>k;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	if(n==1)
	{
		cout<<a[1];
		return 0;
	}
	else if(n==2)
	{
		if(k==0)
			cout<<(a[1]+a[2])%mod;
		else
			cout<<((a[1]-a[2])%mod+mod)%mod;
		return 0;
	}
	if(k==n-1)
	{
		cout<<((a[1]-a[2])%mod+mod)%mod;
		return 0;
	}
	for(int i=4;i<=n;i++)
		a[3]+=a[i];
	tot1=(n*(n-3)/2+1)%mod;
	ans1=a[1]*tot1+a[2]*(tot1-k*(n-2));
	ans1%=mod;
	tot2=((n*(n-1)+k*(k+3))/2-n*(k+1)+1)%mod;
	ans2=a[3]*tot2%mod;
	ans1+=ans2;
	cout<<(ans1*qpow(tot1,mod-2)%mod+mod)%mod;
	return 0;
}

